package vista.ventanaTarea;

import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import modelo.Asignacion;
import modelo.Proyecto;
import modelo.tareas.Tarea;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

/**
 * @author Natalia Stefania 
 */

public class VerAsignaciones {
	
	// Variables  *********************************************************** //
	private JButton volver; 
	private JPanel panel;  
	private JTable tablaDeAsignaciones;
	private JFrame frame;
	private Proyecto proyecto; 
	private Tarea asignacionesTarea; 
	private DefaultTableModel defaultTableModel; 
	
	// Constructor  ******************************************************** //
	public VerAsignaciones(Tarea tarea, Proyecto model) {
		super (); 
		
		this.volver= new JButton("Volver");
		this.panel = new JPanel (); 
		this.frame= new JFrame ("Asignaciones de: " + tarea.getNombre()); 
		this.asignacionesTarea= tarea; 
		this.proyecto = model;
		
		this.init() ;
	}	
	
	// Metodos  *********************************************************** //
	/**
	 * Crea la tabla de asignaciones que contiene una tarea
	 */
	public void crearGrilla (){
		// creamos el modelo de Tabla
		defaultTableModel = new DefaultTableModel();

        // se crea la Tabla con el modelo DefaultTableModel
        this.tablaDeAsignaciones = new JTable(defaultTableModel);
        
        // insertamos las columnas
        defaultTableModel.addColumn ("Usuario");
        defaultTableModel.addColumn("Fecha Inicio");
        defaultTableModel.addColumn("Fecha Fin");
        
        // Si el proyecto tiene asginaciones la insertamos en el contenido de las columnas
        // En caso contrario, no le agrego nada, pero le paso una cantidad de objetos que puede agregar
        Object[] data = new Object[3];
        
        if (this.proyecto.asignacionesDeUnaTarea(asignacionesTarea)!= null){
        	for (Asignacion asignacion: this.proyecto.asignacionesDeUnaTarea(asignacionesTarea)){
	    		data [0]= asignacion.getUsuarioAsignado().getNombrePersona(); 
	    		data [1]= asignacion.getFechaInicio();
	    		data [2]= asignacion.getFechaFin();   
	    		
	    		defaultTableModel.addRow(data);  
        	} 
        }
        
        //Creamos un JscrollPane y le agregamos la JTable
        JScrollPane scrollPane = new JScrollPane(tablaDeAsignaciones);

        //Agregamos el JScrollPane al contenedor
        frame.getContentPane().add(scrollPane, BorderLayout.CENTER);       
	}
	
	/**
	 * Inicializa los componentes
	 */
	public void init (){
		this.crearGrilla ();
		
		this.panel.add(volver);
		this.frame.getContentPane().add(panel,BorderLayout.SOUTH);
		
		// Le agrego funcionalidad al boton
		this.volver.addActionListener(new BotonVolverListener ());
		
		this.frame.setSize(400, 200);
		this.frame.setVisible(true);
		
		this.frame.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE );
	}
	
	/**
	 * Este boton, tendra como funcion cerrar la ventana actual
	 */
	public class BotonVolverListener implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			frame.dispose();
		}
	}

}
